#ifndef _SCHEDULER_
#define _SCHEDULER_

#include "types.h"
#include "loader.h"

/*
#include "process.h"
typedef struct
{
  pcb_t head;
  pcb_t dummy_process;

  pcb_t *q_ptrs[NUM_PROCESS_PRIORITIES];
}ready_queue_t;
*/

void add_process_to_ready_queue(pcb_t *pcb_ptr);
uint32_t * scheduler(uint32_t *reg_set);
pcb_t * get_active_process(void);

void block_process_on_sem(uint32_t data);
void release_process_from_sem(uint32_t data);
#endif
